Akamai Cloud Computing(以下、Akamaiクラウド)では、無料枠として$100のクレジットをもらえる。
https://www.akamai.com/ja/create-account
仕事で触れることがあまりないので遊んでみる&お掃除が簡単なようにTerraform管理するまでのメモ(環境はMacを想定)
linode-cliをインストールする
毎回WebUIを見に行くのは面倒なのでAkamaiクラウドのCLIであるlinode-cliをインストールする。
https://techdocs.akamai.com/cloud-computing/docs/install-and-configure-the-cli#install-the-cli
セットアップ
linode-cli
を初回に実行すると、ブラウザ認証される。
$ linode-cli
Welcome to the Linode CLI. This will walk you through some initial setup.
The CLI will use its web-based authentication to log you in.
If you prefer to supply a Personal Access Token,use `linode-cli configure --token`.
Press enter to continue. This will open a browser and proceed with authentication.
A browser should open directing you to this URL to authenticate:
https://login.linode.com/oauth/authorize?client_id=xxxxxxxxxxx&response_type=token&scopes=*&redirect_uri=http://xxxxxxxxxx
If you are not automatically directed there, please copy/paste the link into your browser
to continue..
いくつかデフォルトリージョンなどの設定を完了すると、トークンとともに~/.config/linode-cli
に永続化される。
WebUIからはAPI TokensにLinode CLI @ {hostname}
というPersonal Access Token (PAT) が追加されたことを確認できる。
このPATは、有効期限がNever
でありすべてのリソースにRead/Write
が許可されているので不安があればリソースを絞るなどするとよい。
Terraformで管理する
AkamaiクラウドのリソースをTerraformで管理する。
https://registry.terraform.io/providers/linode/linode/latest
セットアップ
PAT発行
APIアクセスするためのPATをlinode-cliで作成する。
# https://techdocs.akamai.com/linode-api/reference/post-personal-access-token
$ linode-cli profile token-create \
--scopes '*' \
--expiry '2025-01-01T00:00:00' \
--label terraform
ここでは--scopes '*'
を指定しており、すべてのリソースのRead/Writeを許可している。
もちろんトークンもTerraform管理することが可能。
https://registry.terraform.io/providers/linode/linode/latest/docs/resources/token
Provider設定
Terraform providerをドキュメントに従って設定する。
# .tf
terraform {
required_providers {
linode = {
source = "linode/linode"
version = "2.30.0" # バージョンは最新に読み替える
}
}
}
provider "linode" {
token = var.token
}
# variables.tf
variable "token" {}
トークンの渡し方はexport LINODE_TOKEN=mytoken
でもよい。
https://registry.terraform.io/providers/linode/linode/latest/docs#post-personal-access-token
動作確認
作業ディレクトリの初期化とplanの動作確認を行い、No changes.
であることを確認する。
$ terraform init
$ terraform plan -var "token=発行したPAT" # -varは以降の例では省略
リソースを作成する
試しにObject Storageを作成する。
# storage.tf
# https://registry.terraform.io/providers/linode/linode/latest/docs/resources/object_storage_bucket
resource "linode_object_storage_bucket" "mybucket" {
region = "jp-osa-1"
label = "mybucket-24164" # 適当な名前
}
$ terraform apply
Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
+ create
Terraform will perform the following actions:
# linode_object_storage_bucket.mybucket will be created
+ resource "linode_object_storage_bucket" "mybucket" {
+ acl = "private"
+ cluster = (known after apply)
+ cors_enabled = true
+ endpoint = (known after apply)
+ hostname = (known after apply)
+ id = (known after apply)
+ label = "mybucket-24164"
+ region = "jp-osa-1"
+ versioning = (known after apply)
}
Plan: 1 to add, 0 to change, 0 to destroy.
Do you want to perform these actions?
Terraform will perform the actions described above.
Only 'yes' will be accepted to approve.
Enter a value: yes
linode_object_storage_bucket.mybucket: Creating...
linode_object_storage_bucket.mybucket: Still creating... [10s elapsed]
linode_object_storage_bucket.mybucket: Creation complete after 11s [id=jp-osa:mybucket-24164]
Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
$
linode-cliで確認。
$ linode-cli obj ls
2024-10-29 15:33 mybucket-24164
$
できた。
お掃除
最後に作ったリソースを消しておく。
# 対象を指定したい場合は `-target=linode_object_storage_bucket.mybucket`
$ terraform destroy
Terraformで管理できる安心は何ものにも代えがたい。 料金も
- LinodesはShared CPUの最小サイズで$5/月
- Object Storageは250GBまで$5/月
で安価なので$100もあれば色々遊べそう。